package com.mxfcode.bbs_common.table_operation.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @类名 UtilDao
 * @描述 TODO
 * @作者 mxf
 * @创建日期 2020/10/27 14:31
 **/
@Mapper
public interface UtilMapper {
    /**
     * 查询单条数据
     * @param tableName
     * @param id
     * @return
     */
    Map<String,Object> getOneDataForId(@Param("tableName") String tableName, @Param("id") String id);


    /**
     * 查询结果列表
     * @param tableName
     * @param map
     * @return
     */
    List<Map<String,Object>> getListData(@Param("tableName") String tableName, @Param("map") Map<String, Object> map);

    /**
     * 根据参数map插入单条数据
     * @param map
     * @return
     */
    Integer insertOneData(@Param("tableName") String tableName, @Param("map") Map<String, Object> map);

    /**
     * 根据参数列表插入数据列表
     * @param list
     * @return
     */
    Integer insertDataForList(@Param("tableName") String tableName, @Param("list") List<Map<String, Object>> list, @Param("keysList") List<String> keysList);

    /**
     * 删除数据--多条
     * @param tableName
     * @param ids
     * @return
     */
    Integer deleteDataForIds(@Param("tableName") String tableName, @Param("ids") String ids);

    /**
     * 更新数据--单条
     * @param tableName
     * @param id
     * @param map
     * @return
     */
    Integer updateOneData(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map<String, Object> map);

    /**
     * 更新数据--多条
     * @param tableName
     * @param map
     * @param ids(id之间逗号分割)
     * @return
     */
    Boolean updateDataMap(@Param("tableName") String tableName, @Param("map") Map<String, Object> map, @Param("id") String ids);
}
